home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 4
/
Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso
/
Pearls
/
dev
/
Language
/
CLisp
/
doc
/
ReadMe.kit
< prev
next >
Wrap
Text File
|
1996-08-22
|
3KB
|
61 lines
Short: CLISP release 30.5.96 construction kit
Requires: OS 2.04 or newer, GNU linker (ld)
Author: Joerg.Hoehle@gmd.de
Uploader: Joerg.Hoehle@gmd.de
Type: dev/lang
This archive contains both a ready-to-run Amiga-CLISP binary and a link kit
with which to build an extended CLISP containing your own C (or whatever
language) functions.
This archive contains a link kit with which to build an extended CLISP
containing your own C (or whatever language) functions.
This archive corresponds to the -high version of Amiga-CLISP (i.e. 68020 or
better, addresses upto 0x7fffffff). It is the only distributed binary
archive that contains the standard CLISP FFI (which is different from the
AFFI common to all Amiga versions).
The FFI is huge but more powerful than the AFFI. It can call arbitrary C
functions. It allows callbacks (not yet with parameters in registers)
foreign structure and type definitions. It is documented in FOREIGN.TXT.
However, its support for calling Amiga shared library functions is
incomplete. Therefore FOREIGN.D and FOREIGN1.(LSP|FAS) are provided as well
for reference purposes and extensions.
Extending CLISP is done by adding another module definition in MODULES.H (a
line saying MODULE(<name>)) and building a new LISP.RUN binary. An
interesting feature of modules is that an old image file generated by a
LISP.RUN without a given module is accepted by an extended LISP.RUN. Thus,
you can use the supplied LISPINIT.MEM file even after building a LISP.RUN
that contains QUEENS.
The GNU linker (ld) is required to build an own lisp.run binary from the
supplied link libraries. GCC is required for adding compiling modules.
After extracting the archive and setting a large stack,
make -f Makefile.kit KITOBJECTS= lisp.run
will generate an executable containing no additional module, as the initial
MODULES.H only contains the line
MODULE(affi)
The lisp.run I then generate is 694448 bytes in size (not stripped).
QUEENS is provided as a module demo. It's module interface (QUEENS-FFI.C)
is generated by compiling QUEENS-FFI.LSP.
lisp.run -M lispinit.mem -c queens-ffi.lsp
Add a line saying MODULE(queens_ffi) to MODULES.H.
If "make -f Makefile.kit" works, after (LOAD "queens-ffi"),
(FFI-DEMOS::QUEENS 8) will return 92.
Note that CLISP has been built with my tiny startup code and without any
standard C library stdio or malloc() functions, so if you need them you may
run into trouble as they may not be initialized when CLISP's main() is
entered.
Note that this CLISP has been compiled with Gcc-2.5.8 using the
non-reentrant static struct return convention whereas newer Gcc-2.7.2 have
finally been switched to stack struct return (like Gcc-2.3.3). This will
cause problems with struct return types or arguments (but not with pointers
to structures).